class Students () :
    # 类属性
    schoolNmae = '天津滨海新区，中心小学'

    # 实例属性
    def __init__(self, name, age) :
        self.name = name
        self.age = age
        print(f'{name}今年{age}岁了，在{self.schoolNmae}中学上初二')

    # 实例方法
    def show (self) :
        print(f'再说一次 {self.name} 今年{self.age}岁了，在{self.schoolNmae}中学上初二')

    def calcu (self, x, y) :
        return self.su(x,y)

    def product(self, x, y) :
        return self.add(x,y)

    # 静态方法
    @staticmethod
    def su(x,y):
        return x * y
    @classmethod
    def add (cls, x,y):
        return x + y

stu = Students('张三','19') #给self初始化实例属性 例：age。name
print(stu.schoolNmae) #访问类属性
stu.show() #访问实例方法

print(stu.calcu(10,20)) #通过实例方法调用 静态方法 / 类方法
print(stu.product(40,20)) #通过实例方法调用 静态方法 / 类方法

print(Students.su(10,20),'==') #用类去调用静态方法
print(Students.add(30,50)) #用类调用类方法

# 动态添加属性与方法

stu.sex = '男'
print(stu.sex)

def func() :
    print('动态添加的方法', stu.name)
stu.func = func
stu.func()

# 添加学生信息方法，并打印出来

